12 - 9.2.6 Einplanungsverfahren: Verdrängende Verfahren [ID:22150]
50 von 139 angezeigt

Nun kommen wir zum Round Robin Verfahren. Das ist ein verdrängendes First-Come-First-Serve.

Es verwendet, um die Verdrängung zu realisieren, sogenannte Zeitschreiben und in dem es ein

verdrängendes Verfahren ist, implementiert es gleichzeitig CPU-Schutz. Hier werden wie

bei FCFS die Prozesse in ihrer Ankunftszeit einsortiert, aber sie werden in mehr oder

weniger regelmäßigen Abständen, periodisch nämlich, umgeplant. Da kann also dann durchaus

die Breitliste dieser Prozesse komplett umsortiert werden, nach gewissen Kriterien. Diese

Verdrängungstechnik, die man hier einsetzt, die nutzt periodische Unterbrechungen, die

kommen von einem Zeitgeber, das ist ein Timer Interrupt, der liefert dann also asynchrotische

Programmunterbrechungen, entsprechend voreingestellter Zeitlängen. Diese Zeitlängen, auch Zeitscheiben,

Timeslice genannt, werden den Prozessen dann zugeteilt. Für gewöhnlich hat man in solchen

Systemen eine systemweit definierte Zeitscheibenlänge, die dann also für alle diese Prozesse typischerweise

gelten. Und diese Zeitscheibe definiert dann letztendlich eine obere Schranke für die

Rechenstoßlänge des jeweils laufenden Prozesses. Wenn also der Rechenstoß länger ist als diese

Zeitscheibe lang ist, dann wird er vom Zeitgeber unterbrochen und es wird ein anderer Prozess,

so der denn verfügbar ist, dann zur Ausführung gebracht werden. Hier werden durchaus Benachteiligungen,

die wir denn bei FCFS vorher gerade kennengelernt haben, verringert. Sie werden nicht komplett

gelöst, die wir gleich sehen, werden aber schon merklich verringert. Es hängt aber dann davon ab,

wie lang die Zeitscheibe denn letztendlich definiert ist. Wenn diese Zeitscheibenlänge zu groß ist,

denn degeneriert de facto dieses Verfahren nach FCFS, weil ja immer FCFS praktisch als Grundlage

existiert, um den Prozess überhaupt einzureihen in die Warteschlange. Wenn wir die Zeitscheibenlänge

zu kurz definieren, dann heißt es, dass wir eine zu hohe Interruptfrequenz bekommen, dann heißt es,

dass wir zu viele Unterbrechungen innerhalb einer bestimmten Zeitspanne bekommen werden und damit

viel zu viel Overhead-Mehraufwand im Rechensystem generieren. Hier muss man also die Zeitscheibenlänge

wohl definieren und da gibt es eine Faustregel, die sagt, die sollte etwas länger sein als die

Dauer eines typischen Rechenstoßes. Nun, diese Länge eines typischen Rechenstoßes kriegt man

dann eigentlich nur aus, indem man sozusagen mal Testläufe mit seinem generierten Betriebssystem

durchführt für einen bestimmten Anwendungsfall und dann einfach wirklich tatsächlich die einzelnen

Rechenstoßzeiten misst und auf Basis der dann gewonnenen Erkenntnisse einfach die Zeitscheibenlänge

dann letztendlich definiert. Heute reden wir von Zeitscheibenlängen, die liegen so im 100

Millisekunden, im 20 Millisekunden Bereich, je nachdem um welche Art von Betriebssystem es geht und

wie schnell der unterliegende Prozessor denn etwa läuft. Der Konvoieffekt ist durchaus immer noch

da, er ist nicht mehr so ganz ausgeprägt wie in dem reinen FCFS-Verfahren, aber hier werden wir,

wenn wir gleich noch betrachten, durchaus Situationen haben können, wo denn Prozesse,

die eben kürzer als eine Zeitscheibe laufen werden, denn praktisch immer Prozessen folgen,

die ihre Zeitscheibe voll ausnutzen und damit wir auch so eine Art Konvoiebildung von den ganz

kurzen Prozessen haben können. Die Zuteilung denn der Zeitscheiben an diese Prozesse läuft de facto

nach First-Come-First-Serve, wo die Prozesse entsprechend eingereiht werden. Wenn wir

sogenannte eine Ausgabe-intensive, also interaktive Prozesse halt haben, dann sind das Prozesse,

wie ich vorher schon nannte, die typischerweise ihre Zeitscheibe gar nicht ausschöpfen werden,

weil die immer einen sehr kurzen Rechenstoß halt haben. Die benötigen die CPU nur relativ kurz,

setzen den nächsten einen Ausgabeauftrag ab und dann warten sie dann darauf, dass dieser eine

Ausgabeauftrag beendet worden ist und das schaffen die normalerweise halt innerhalb ihrer Zeitscheibe.

Wohingegen die CPU-intensiven Prozesse, die CPU, den Speicher, den Hauptspeicher belegen und erst

praktisch diese Ressourcen freigeben, wenn sie dann verdrängt werden. Das heißt also hier haben

wir dann Prozesse, die eine Rechenstoßlänge haben, die typischerweise länger als die Zeitscheibe sind

und damit ihre Zeitscheibe vollständig ausnutzen werden. Beide Arten von Prozessen werden natürlich

der Nummerreihe unbedient. Das bringt dieses RR-Verfahren dann halt mit sich. Nun, wenn die

Zeitscheibe durch den Prozess nicht voll ausgeschöpft wird, dann werden wir über eine längere Zeit eine

Situation haben, wo die CPU-Zeit zu Ungunsten der sogenannten eine Ausgabe-intensiven Prozesse

verteilt wird. Das heißt also diese ein Ausgabe-intensiven interaktiven Prozesse

Teil eines Kapitels:
9.2 Einplanungsverfahren

Zugänglich über

Offener Zugang

Dauer

00:12:59 Min

Aufnahmedatum

2020-10-29

Hochgeladen am

2020-10-29 12:46:32

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen